var obj = function(a1, a2, a3) {
		var a = a1; // 定义私有变量a
		var b = a2; // 定义私有变量b
		var f = function() // 定义私有函数 把私有变量a和私有变量b连接起来返回
			{
				return a + b;
			}
			// ----------------------以上为私有成员-----------------
			this.c = a3; // 定义可以访问私有成员的公有变量
		this.d = function() // 定义可以访问私有成员的公有函数 返回私有函数f的运行结果
		{
			return f();
		}
		// ----------------------以上为公有成员-----------------
	}
obj.prototype.e = "e"; // 在构造函数外定义公有成员变量
/** 如何判断是私有函数还是公有函数* */

function testObj() {

	var o = new obj("a", "b", "c");

	alert(o.a); // aa的返回值为undefind 说明obj的a变量为私有变量
	alert(o.b); // bb的返回值为undefind 说明obj的b变量为私有变量
	alert(o.c); // cc的返回值为c 说明obj的c变量可以被外部函数访问是公有函数
	alert(o.f); // ff的返回值为undefind 说明obj的f函数为私有函数
	alert(o.d); // dd的返回值不为undefind 说明obj的f函数为公有函数可以被外部函数访
}

testObj();